/*
** Generate_C_patterns.h
** 
** Made by Michael DuPont
** Login   <mdupont@mdupontdesktop2>
** 
** Started on  Tue Mar  3 08:30:48 2009 Michael DuPont
** Last update Tue Mar  3 08:30:48 2009 Michael DuPont
*/

#ifndef   	GENERATE_C_PATTERNS_H_
# define   	GENERATE_C_PATTERNS_H_

Pattern * createPattern_static();
Pattern * createPattern_unset();
Pattern * createPattern_throw();
Pattern * createPattern_Assign_var();
Pattern * createPattern_method_definition ();
Pattern * createPattern_class_def ();
Pattern * createPattern_Assign_var();
Pattern * createPattern_assign_expr_constant ();
Pattern * createPattern_assign_expr_var ();
Pattern * createPattern_assign_expr_var_var ();
Pattern * createPattern_assign_expr_array_access ();
Pattern * createPattern_assign_expr_param_is_ref ();
Pattern * createPattern_assign_expr_isset();
Pattern * createPattern_assign_expr_bin_op();
Pattern * createPattern_assign_expr_unary_op();
Pattern * createPattern_assign_expr_cast ();
Pattern * createPattern_assign_expr_foreach_has_key ();
Pattern * createPattern_assign_expr_foreach_get_key ();
Pattern * createPattern_assign_expr_foreach_get_val ();
	// Literals are special, as they constant pool, and can be used as Rvalues
Pattern * createPattern_assign_literal ();
	// Method invocations and NEWs can be part of Eval_expr or just Assign_vars
Pattern * createPattern_expr_builtin();
Pattern * createPattern_expr_method_invocation();
	// OOP
Pattern * createPattern_assign_field();
Pattern * createPattern_assign_expr_field_access();
Pattern * createPattern_assign_expr_new();
	// All the rest are just statements
Pattern * createPattern_assign_array ();
Pattern * createPattern_assign_next ();
Pattern * createPattern_assign_var_var ();
Pattern * createPattern_class_or_interface_alias ();
Pattern * createPattern_method_alias ();
Pattern * createPattern_branch();
Pattern * createPattern_goto();
Pattern * createPattern_label();
Pattern * createPattern_foreach_end ();
Pattern * createPattern_foreach_next ();
Pattern * createPattern_foreach_reset ();
Pattern * createPattern_global();
Pattern * createPattern_return();

Pattern *createPattern_pre_op();


#endif 	    /* !GENERATE_C_PATTERNS_H_ */
